// Copyright DustedPixels.com 2008. All rights reserved.

package com.dustedpixels.ooops;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

/**
 * Annotates a method to have all field access replaced with variable access.
 * 
 * This optimisation may be used for methods which contains loops in it.
 * 
 * <p>
 * This is how it works:
 * <ol>
 * <li>detect all fields which are being read or written
 * <li>at the beginning of the method it copies all field values to allocated local variables
 * <li>replaces all field access to local variable access
 * <li>at the end of the method, it copies back values from local variables to fields
 * </ol>
 * 
 * @author micapolos@gmail.com (Michal Pociecha-Los)
 */
@Target({ElementType.METHOD})
@Documented
public @interface FieldsToVariables {

}
